package org.znxs.znagent_s.rag.tools;

import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;
import org.znxs.znagent_s.constant.FileConstant;

import java.io.File;

/**
 * 适用于 ai—agent 资源下载工具类
 */
@Slf4j
public class ResourceDownloadTool {

    private static final String FILE_SAVE_DIR = FileConstant.FILE_SAVE_DIR + "/download";


    @Tool(description = "从url网址 下载资源")
    public String downloadResource(@ToolParam(description = "下载资源的url") String url
            , @ToolParam(description = "资源的文件名称") String filename) {
        // 文件路径
        String filepath = FILE_SAVE_DIR + "/" + filename;
        try {
            // 创建目录
            FileUtil.mkdir(FILE_SAVE_DIR);
            // 使用 Hutool 的 downloadFile 方法下载资源
            HttpUtil.downloadFile(url, filepath);
            log.info("文件下载完成：\n{}", filepath);
            return String.format("文件下载完成：%s", filepath);
        } catch (Exception e) {
            log.error("文件下载失败", e);
            return String.format("文件下载失败：%s", e);
        }
    }

}